package com.zhiyin.seal.service;

import com.zhiyin.seal.entity.bo.AdminFunctionBo;
import com.zhiyin.seal.entity.bo.AdminSealBo;
import com.zhiyin.seal.entity.bo.UserBo;

import java.util.List;

/**
 * 用户服务
 */
public interface UserService {

    /**
     * 用户注册
     * @param userBo
     * @return
     */
    UserBo register(UserBo userBo);

    /**
     * 获取用户信息
     * @param openId
     * @return
     */
    UserBo getUserInfo(String openId);

    List<UserBo> getAllUserList(String keywords);

    UserBo getUserInfoById(Long id);

    UserBo getUserInfoByIdAndCompany(Long userId,Long companyId);

    List<UserBo> getUserListByUserIdsAndCompany(List<Long> userIdList,Long companyId);

    List<UserBo> getUserListByIds(List<Long> userIds);

    /**
     * 同步用户信息
     * @param userBo
     * @return
     */
    Boolean updateUserInfo(UserBo userBo);

    List<AdminSealBo> getAdminSealList(Long userId,Long companyId);

    Boolean updateAdminSeal(AdminSealBo adminSealBo);

    List<AdminFunctionBo> getAdminFunctionList(Long userId,Long companyId);

    Boolean updateAdminFunction(AdminFunctionBo adminFunctionBo);

    Integer getUserCount();

}
